package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.TbDriverCarInfo;
import com.ruoyi.system.vo.DriverCarInfoVO;

/**
 * 司机车辆信息Service接口
 * 
 * @author ruoyi
 * @date 2025-04-11
 */
public interface ITbDriverCarInfoService 
{
    /**
     * 查询司机车辆信息
     * 
     * @param id 司机车辆信息主键
     * @return 司机车辆信息
     */
    public TbDriverCarInfo selectTbDriverCarInfoById(Long id);

    /**
     * 查询司机车辆信息列表
     * 
     * @param tbDriverCarInfo 司机车辆信息
     * @return 司机车辆信息集合
     */
    public List<TbDriverCarInfo> selectTbDriverCarInfoList(TbDriverCarInfo tbDriverCarInfo);

    /**
     * 新增司机车辆信息
     * 
     * @param tbDriverCarInfo 司机车辆信息
     * @return 结果
     */
    public int insertTbDriverCarInfo(TbDriverCarInfo tbDriverCarInfo);

    /**
     * 修改司机车辆信息
     * 
     * @param tbDriverCarInfo 司机车辆信息
     * @return 结果
     */
    public int updateTbDriverCarInfo(TbDriverCarInfo tbDriverCarInfo);

    /**
     * 批量删除司机车辆信息
     * 
     * @param ids 需要删除的司机车辆信息主键集合
     * @return 结果
     */
    public int deleteTbDriverCarInfoByIds(Long[] ids);

    /**
     * 删除司机车辆信息信息
     * 
     * @param id 司机车辆信息主键
     * @return 结果
     */
    public int deleteTbDriverCarInfoById(Long id);

    DriverCarInfoVO selectTbDriverCarInfoByMerchantNo(String merchantNo);

    void updateUserMessagePush(TbDriverCarInfo driverCarInfo);

    DriverCarInfoVO selectTInfoByUserId(Long userId);

    Object switchOnlineStatusInterface(Long userId);

    DriverCarInfoVO selectCidInfoByUserId(Long userId);

    TbDriverCarInfo selectDriverInfoByMerchantId(String merchantId);

    void updatePassword(Long userId, String password, String newPassword);

    Object resetPasswordsAllDrivers();
}
